const ecBLE = require('../../utils/ecble.js')

const app = getApp()

var isCheckRevHex = true

// Uint8类型的数组， 参数是数组成员个数
//var send_buff = new Uint8Array(16);
//var receiver_buff = new Uint8Array(16);
Page({
  
        data:{
                
        },

        //  生命周期函数--监听页面加载

  onLoad: function (options) {
        const ctx = this
        //on disconnect
        ecBLE.onBLEConnectionStateChange(() => {
          ctx.showModal("提示", "设备断开连接")
        })

        //receive data
        ecBLE.onBLECharacteristicValueChange((str, strHex) => {
        // 将字符串转为16进制形式进行接收
        let data =  (isCheckRevHex ? strHex : str)
        // 通过日志输出 获取到的16进制数据
        console.log("当前接收到的数据为" + data+"\n")

        // 通过字符串切割 获取头字节和尾字节， 这里按照通信协议进行分割
        app.globalData.receiver_buff_0 = data.substring(0,2)
        app.globalData.receiver_buff_7 = data.substring(14,16)
        // 判断头字节及尾字节正确性，进行数据验证
        if(app.globalData.receiver_buff_0 == 'bc' && app.globalData.receiver_buff_7 == 'c0')
        {
                // 切割手部反馈功能字并判断
                app.globalData.receiver_buff_1 = data.substring(2,4)
                if(app.globalData.receiver_buff_1 == 'bd' )
                {
                        // 切割手部反馈值  和 手心反馈功能字
                        app.globalData.receiver_buff_2 = data.substring(4,6)  
                        app.globalData.receiver_buff_3 = data.substring(6,8)
                        // 判断手心反馈功能字正确
                        if(app.globalData.receiver_buff_3 == 'be')
                        {
                                // 切割手心反馈值 和 脚部反馈功能字
                                app.globalData.receiver_buff_4 = data.substring(8,10)
                                app.globalData.receiver_buff_5 = data.substring(10,12)
                                // 判断脚部反馈功能字正确
                                if(app.globalData.receiver_buff_5 == 'bf')
                                {
                                    //  切割脚部反馈功能字
                                    app.globalData.receiver_buff_6 = data.substring(12,14)
                                }

                                // 通过日志 输出当前 三个反馈的状态
                                console.log(app.globalData.receiver_buff_2,app.globalData.receiver_buff_4,app.globalData.receiver_buff_6 + "\n");
                                // 数据校验正确，输出 data is ok 
                                console.log( "data is ok\n")
                        }
                }
          }
          //  每接收一次数据，处理完成后将数据清空 
          data = ""  
        })
},

        set_hand_time(event)
        {
                // 获取当前event 触发的数值
                app.globalData.set_hand_time_value = event.detail.value
                // 如果这个值小于10，会导致在发送的时候只使用4位，所以如果数值小于10，手动在前面加一个字符0
                // 就会发送为01 ， 02 等等， 来处理成 一个完整的字节
                if(app.globalData.set_hand_time_value < 10)
                {
                        app.globalData.send_buff_3 = '0' + app.globalData.set_hand_time_value
                }
                else
                {
                        app.globalData.send_buff_3 = app.globalData.set_hand_time_value
                }

                getApp().data_send()
        },


        set_hand_speed(event)
        {

                // 这里同上
                app.globalData.set_hand_speed_value = event.detail.value
                // 同上
                if(app.globalData.set_hand_speed_value < 10)
                {
                        app.globalData.send_buff_5 = '0' + app.globalData.set_hand_speed_value
                }
                else
                {
                        app.globalData.send_buff_5 = app.globalData.set_hand_speed_value
                }

                getApp().data_send()
        },

        set_hand_switch(event)
        {

                wx.showLoading({title: '开启中',mask:'true'})
                        
                app.globalData.status_hand = event.detail.value
                if(app.globalData.status_hand == true)
                {

                        // 之所以发01 都是为了凑够一个字节
                        app.globalData.send_buff_7 = '01'
                        getApp().data_send()
                }
                else{
                        app.globalData.send_buff_7 = '00'
                        getApp().data_send()
                }

                //延迟时间 这里是1.5秒
                setTimeout(function () {wx.hideLoading({})}, 1500); 


        },

})